module key_update(key_update_in,key_update_out,round_counter);
/*进行key的迭代替换*/

input  wire[79 : 0] key_update_in; 
input  wire[4 : 0] round_counter;
output wire[79 : 0] key_update_out; 

wire [79:0] s1,s2,s3; 
                               

s_box key_update_sbox(.sbox_out(s2[79:76]),.sbox_in(s1[79:76])); //调用S_box对高四位替换
assign s1 = {key_update_in[18:0],key_update_in[79:19]};//左移61位

assign s2[75:0] = s1[75:0]; // S_box计算值替换掉高四位
assign s3 = {s2[79:20],(s2[19:15])^(round_counter),s2[14:0]}; //将key[19:15]与round_counter异或运算
assign key_update_out = s3;

endmodule